##开启事务
BEGIN;
SET NAMES utf8mb4;

-- ------------------------> 正式开始写 SQL 语句 <------------------------
DROP TABLE IF EXISTS `hair_salon`.`voucher`;
CREATE TABLE `hair_salon`.`voucher`
(
    `id`             varchar(50)    NOT NULL COMMENT '数据ID',
    `shop_id`        varchar(50)    NOT NULL COMMENT '店铺ID',
    `voucher_name`   varchar(200)   NOT NULL COMMENT '代金券名称',
    `voucher_amount` decimal(10, 2) NULL COMMENT '代金券金额',
    `validity_start` date           NULL COMMENT '有效期-开始',
    `validity_end`   date           NULL COMMENT '有效期-结束',
    `remark`         varchar(200)   NULL COMMENT '备注',
    `is_deleted`     tinyint(1)     NOT NULL DEFAULT 0 COMMENT '逻辑删除：1(已删除) 0(未删除)',
    `create_time`    datetime       NULL COMMENT '创建时间',
    `update_time`    datetime       NULL COMMENT '修改时间',
    PRIMARY KEY (`id`)
) COMMENT = '代金券模板表';

DROP TABLE IF EXISTS `hair_salon`.`voucher_item`;
CREATE TABLE `hair_salon`.`voucher_item`
(
    `id`          varchar(50) NOT NULL COMMENT '数据ID',
    `voucher_id`  varchar(50) NOT NULL COMMENT '代金券ID',
    `item_id`     varchar(50) NOT NULL COMMENT '消费单ID',
    `is_deleted`  tinyint(1)  NOT NULL DEFAULT 0 COMMENT '逻辑删除：1(已删除) 0(未删除)',
    `create_time` datetime    NULL COMMENT '创建时间',
    `update_time` datetime    NULL COMMENT '修改时间',
    PRIMARY KEY (`id`)
) COMMENT = '代金券关联消费单表';

ALTER TABLE `hair_salon`.`voucher`
    ADD COLUMN `voucher_status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '代金券状态(0-未生效, 1-生效中, 2-已过期)' AFTER `validity_end`;
-- ------------------------> 正式结束写 SQL 语句 <------------------------
##提交事务
COMMIT;

## 如遇错误, 执行以下sql
## ROLLBACK;